313. 超级丑数

313. 超级丑数

Similar Question

Solution Tips

方案一: 丑数 II 动态版

动态生成每次的比较列表

/**
 * @param {number} n
 * @param {number[]} primes
 * @return {number}
 */
var nthSuperUglyNumber = function(n, primes) {
  let T = []
  T[0]=1
  const counts = new Array(primes.length).fill(0)
  for (let i = 1; i < n; i++) {
    const currents = counts.map(function(count,i,arr){
      return T[count]*primes[i]
    })
    const min = T[i] = Math.min(...currents)
    primes.forEach(function(prime,i){
      if(min % prime === 0 ) counts[i]++
    })
  }
  return T[n-1]
}